Using Static Analysis to Compile Non-sequential Functional Logic Programs?
Identifieur interne : 00A901 ( Main/Exploration ); précédent : 00A900; suivant : 00A902Using Static Analysis to Compile Non-sequential Functional Logic Programs?
Auteurs : Julio Mari O [Espagne] ; Juan José Moreno-Navarro [Espagne]Source :
- Lecture Notes in Computer Science [ 0302-9743 ]
Abstract
Abstract: The efficient implementation of functional logic languages relies on finding (if it exists) an optimal evaluation order for the arguments of functions. The problems of finding the best evaluation order, and the sequentiality of program rules are both difficult and can benefit from using static analysis techniques. The second problem is of special interest because the parallel evaluation of arguments is out of the question due to the possibility of backtracking and sharing of free logical variables among different arguments. However, the lack of sequentiality is often syntactic rather than semantic. In this paper we show that an adequate use of type information and strictness analysis can help a compiler to (i) derive an efficient evaluation order, and (ii) generate sequential code from most programs. Data structures (new versions of definitional trees) are introduced to take advantage of this kind of information and manage run time tests when the computation cannot be made sequential at compile time.
Url:
DOI: 10.1007/3-540-46584-7_5
Affiliations:
Links toward previous steps (curation, corpus...)
- to stream Istex, to step Corpus: 001290
- to stream Istex, to step Curation: 001273
- to stream Istex, to step Checkpoint: 002287
- to stream Main, to step Merge: 00AF53
- to stream Main, to step Curation: 00A901
Le document en format XML
<record><TEI wicri:istexFullTextTei="biblStruct"><teiHeader><fileDesc><titleStmt><title xml:lang="en">Using Static Analysis to Compile Non-sequential Functional Logic Programs?</title>
<author><name sortKey="Mari O, Julio" sort="Mari O, Julio" uniqKey="Mari O J" first="Julio" last="Mari O">Julio Mari O</name>
</author>
<author><name sortKey="Jose Moreno Navarro, Juan" sort="Jose Moreno Navarro, Juan" uniqKey="Jose Moreno Navarro J" first="Juan" last="José Moreno-Navarro">Juan José Moreno-Navarro</name>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">ISTEX</idno>
<idno type="RBID">ISTEX:50876C92293E2F0DA84BB1F02F1C97325A086472</idno>
<date when="1999" year="1999">1999</date>
<idno type="doi">10.1007/3-540-46584-7_5</idno>
<idno type="url">https://api.istex.fr/ark:/67375/HCB-DMCCJS34-3/fulltext.pdf</idno>
<idno type="wicri:Area/Istex/Corpus">001290</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Corpus" wicri:corpus="ISTEX">001290</idno>
<idno type="wicri:Area/Istex/Curation">001273</idno>
<idno type="wicri:Area/Istex/Checkpoint">002287</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Checkpoint">002287</idno>
<idno type="wicri:doubleKey">0302-9743:1999:Mari O J:using:static:analysis</idno>
<idno type="wicri:Area/Main/Merge">00AF53</idno>
<idno type="wicri:Area/Main/Curation">00A901</idno>
<idno type="wicri:Area/Main/Exploration">00A901</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title level="a" type="main" xml:lang="en">Using Static Analysis to Compile Non-sequential Functional Logic Programs?</title>
<author><name sortKey="Mari O, Julio" sort="Mari O, Julio" uniqKey="Mari O J" first="Julio" last="Mari O">Julio Mari O</name>
<affiliation wicri:level="3"><country xml:lang="fr">Espagne</country>
<wicri:regionArea>Dpto. LSIIS - Facultad de Informática, Universidad Politécnica de Madrid, Campus de Montegancedo s/n, 28660, Madrid</wicri:regionArea>
<placeName><settlement type="city">Madrid</settlement>
<region nuts="2" type="region">Communauté de Madrid</region>
</placeName>
</affiliation>
<affiliation wicri:level="1"><country wicri:rule="url">Espagne</country>
</affiliation>
</author>
<author><name sortKey="Jose Moreno Navarro, Juan" sort="Jose Moreno Navarro, Juan" uniqKey="Jose Moreno Navarro J" first="Juan" last="José Moreno-Navarro">Juan José Moreno-Navarro</name>
<affiliation wicri:level="3"><country xml:lang="fr">Espagne</country>
<wicri:regionArea>Dpto. LSIIS - Facultad de Informática, Universidad Politécnica de Madrid, Campus de Montegancedo s/n, 28660, Madrid</wicri:regionArea>
<placeName><settlement type="city">Madrid</settlement>
<region nuts="2" type="region">Communauté de Madrid</region>
</placeName>
</affiliation>
</author>
</analytic>
<monogr></monogr>
<series><title level="s" type="main" xml:lang="en">Lecture Notes in Computer Science</title>
<idno type="ISSN">0302-9743</idno>
<idno type="ISSN">0302-9743</idno>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt><idno type="ISSN">0302-9743</idno>
</seriesStmt>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">Abstract: The efficient implementation of functional logic languages relies on finding (if it exists) an optimal evaluation order for the arguments of functions. The problems of finding the best evaluation order, and the sequentiality of program rules are both difficult and can benefit from using static analysis techniques. The second problem is of special interest because the parallel evaluation of arguments is out of the question due to the possibility of backtracking and sharing of free logical variables among different arguments. However, the lack of sequentiality is often syntactic rather than semantic. In this paper we show that an adequate use of type information and strictness analysis can help a compiler to (i) derive an efficient evaluation order, and (ii) generate sequential code from most programs. Data structures (new versions of definitional trees) are introduced to take advantage of this kind of information and manage run time tests when the computation cannot be made sequential at compile time.</div>
</front>
</TEI>
<affiliations><list><country><li>Espagne</li>
</country>
<region><li>Communauté de Madrid</li>
</region>
<settlement><li>Madrid</li>
</settlement>
</list>
<tree><country name="Espagne"><region name="Communauté de Madrid"><name sortKey="Mari O, Julio" sort="Mari O, Julio" uniqKey="Mari O J" first="Julio" last="Mari O">Julio Mari O</name>
</region>
<name sortKey="Jose Moreno Navarro, Juan" sort="Jose Moreno Navarro, Juan" uniqKey="Jose Moreno Navarro J" first="Juan" last="José Moreno-Navarro">Juan José Moreno-Navarro</name>
<name sortKey="Mari O, Julio" sort="Mari O, Julio" uniqKey="Mari O J" first="Julio" last="Mari O">Julio Mari O</name>
</country>
</tree>
</affiliations>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Lorraine/explor/InforLorV4/Data/Main/Exploration
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 00A901 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd -nk 00A901 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Lorraine |area= InforLorV4 |flux= Main |étape= Exploration |type= RBID |clé= ISTEX:50876C92293E2F0DA84BB1F02F1C97325A086472 |texte= Using Static Analysis to Compile Non-sequential Functional Logic Programs? }}
This area was generated with Dilib version V0.6.33. |